import java.util.Scanner;

public class demo {
    public static void main1(String[] args) {
        //被final修饰
        StringBuilder stringBuilder = new StringBuilder();
        //append 添加
        stringBuilder.append("1234").append("abch"); //1234abch
        System.out.println(stringBuilder);
        //stringBuilder，可变的，不会有其他对象的产生

        StringBuffer stringBuffer = new StringBuffer("456");
        stringBuffer.append("hello").append("ajh");
        System.out.println(stringBuffer);
        //这两个类与string的区别
        //不能直接赋值，要通过new
        //stringBuilder和stringBuffer的区别
        //源码，返回类型，stringBuilder他还是他，一般使用在单线程，未采用同步处理
        // stringBuffer是synchronized,当进入append方法后，别的方法都不能调用append，只有结束后其他对象或方法才能调用append，一般使用在多线程环境（线程安全），采用同步处理

        //String str = stringBuilder;
        //会报错，String类型   StringBuilder类型
        String str = stringBuilder.toString();
        System.out.println(str);

        //String 变 StringBuilder
        String str1 = "6789";
        StringBuilder stringBuilder1 = new StringBuilder(str1);
        System.out.println(str1);

        //String 换 StringBuffer
        StringBuffer stringBuffer1 = new StringBuffer();
        stringBuffer1.append(str);
        System.out.println(str1);

    }

    class Solution{
        public int firstUniChar(String str){
            //给定一个字符串，找到他的第一个不重复的字符，并返回他的索引，如果不存在，则返回-1
            //感觉要用数组
            //遍历原来字符串，看哪个字符第一次出现的次数为1
            //1.定义一个计数数组
            //2.遍历字符串 记录次数
            //3.再次遍历字符串
            int[] count = new int[26];
            for (int i = 0; i < str.length(); i++) {
                //拿到i下标的字符
                char ch = str.charAt(i);
                count[ch-'a']++;
            }

            for (int i = 0; i < str.length(); i++) {
                char ch1 = str.charAt(i);
                if(count[ch1-'a']==1){
                    return i;
                }
            }
            return -1;
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();

    }
}
